"""
爬虫 实例
"""
import requests

# 1. 使用 lxml 模块中的 html，用于解析html
from lxml import html
# 被解析的地址
url = 'https://qiwsir.github.io/'
# 获取页面内容。为了不让汉字乱码，指定编码为 utf-8
page = requests.get(url).content.decode('utf-8')
# 页面内容 转化成 html
sel = html.fromstring(page)
# 通过 xpath 按照结构找到需要的数据。例如找到 qiwsir.github.io 中标题。// 表示相对路径，text() 标识文本
xpath = sel.xpath('//article/h2/a/text()')
print('所有标题为：%s' % xpath)

# 2. 使用正则表达式
import re
import json
import pandas
pneumonia = 'https://ncov.dxy.cn/ncovh5/view/pneumonia'
page1 = requests.get(pneumonia).content.decode('utf-8')
# 正则表达式：查找 id 为 fetchGoodsGuide 的 script
regexp = "<script id=\"fetchGoodsGuide\">([^<]+)"
# 将正则表达式用于页面
findall = re.findall(regexp, page1)
# 根据实际数据做切片操作
data = findall[0][31:-11]
print(data)
# 得到字典列表
dicts = json.loads(data)
# 使用第三方工具包 pandas，将数据写入excel
frame = pandas.DataFrame(dicts)
frame.to_excel('ncov.xlsx')
